HashiCorp Vault Serverのストレージにファイルシステムを使う
はじめに
今回はVault Serverのストレージとしてファイルシステムを使ってみます。
やってみた
サーバ側の作業
Vault Server起動時に指定するConfigファイルを作成します。storage項目でfileを指定します。また前回同様にオレオレ証明書でTLSを有効にしています。
storage "file" { path = "/home/ec2-user/vault" } listener "tcp" { address = "EC2のプライベートIPアドレス:8200" tls_cert_file = "/home/ec2-user/vault-server.crt" tls_key_file = "/home/ec2-user/vault-server.key" }
ファイルシステムを使う場合のパラメータはpathのみです。
Vault Serverを起動します。Storageがfileになっています。
$ sudo ./bin/vault server -config=config.hcl ==> Vault server configuration: Cgo: disabled Listener 1: tcp (addr: "172.31.30.249:8200", cluster address: "172.31.30.249:8201", tls: "enabled") Log Level: info Mlock: supported: true, enabled: true Storage: file Version: Vault v0.9.3 Version Sha: 7d73ac4c967b3b8726c71e00c017129e1d36ad3c ==> Vault server started! Log data will stream in below:
この時点ではファイルは何もありません。
$ ls -alF ./vault 合計 8 drwxrwxr-x 2 ec2-user ec2-user 4096 2月 13 01:31 ./ drwx------ 9 ec2-user ec2-user 4096 2月 13 01:31 ../
クライアント側の作業
Vault Serverのアドレスを環境変数に設定します。
$ export VAULT_ADDR='https://EC2のパブリックIPアドレス:8200'
initializeします。
$ vault operator init -tls-skip-verify
するとcoreとsysというディレクトリが作成されます。これらのディレクトリにはVault Serverの設定などが格納されています。
$ ls -alF ./vault 合計 16 drwxrwxr-x 4 ec2-user ec2-user 4096 2月 13 01:33 ./ drwx------ 9 ec2-user ec2-user 4096 2月 13 01:31 ../ drwx------ 4 root root 4096 2月 13 01:33 core/ drwx------ 4 root root 4096 2月 13 01:33 sys/
Unsealして使えるようにします。
$ vault operator unseal -tls-skip-verify $ vault operator unseal -tls-skip-verify $ vault operator unseal -tls-skip-verify
loginします。
$ vault login -tls-skip-verify 6bcc76e3-98d8-3d5d-a8e1-a15ad3cc9ac8
さて、それでは実際に値を格納してみます。
$ vault write -tls-skip-verify secret/sasakidaisuke value=smokeymonkey Success! Data written to: secret/sasakidaisuke
するとlogicalというディレクトリが作成されます。
$ ls -alF 合計 20 drwxrwxr-x 5 ec2-user ec2-user 4096 2月 13 01:34 ./ drwx------ 9 ec2-user ec2-user 4096 2月 13 01:31 ../ drwx------ 4 root root 4096 2月 13 01:33 core/ drwx------ 3 root root 4096 2月 13 01:34 logical/ drwx------ 4 root root 4096 2月 13 01:33 sys/
この中にはアンダースコアとKeyをファイル名としたファイルが作成されています。
$ sudo tree ./vault/logical/ ./vault/logical/ └── e402eb4a-b2db-3a04-46ec-8de6d339b7ec └── _sasakidaisuke
ファイルの中身は暗号化されており読むことが出来ません。
$ sudo cat ./vault/logical/e402eb4a-b2db-3a04-46ec-8de6d339b7ec/_sasakidaisuke {"Value":"AAAAAQJ3GrD1OIcDbdSwHb7fpSijzl/AL6rHKYHRiABXhoxdcuUubBJ4e+PYPKA8QmiVFLRqYsqT"}
さいごに
ファイルシステムをストレージにする場合はHigh Availability Modeがサポートされておりません。開発環境等で使用する分にはお気軽に使えるでしょう。